﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using RESTServices.Dominio;
using System.Data.SqlClient;

namespace RESTServices.Persistencia
{
    public class SalaDAO
    {
        public Sala Crear(Sala salaACrear)
        {
            Sala salaCreado = null;
            string sql = "INSERT INTO t_sala  VALUES(@cod, @nomb)";
            using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@cod", salaACrear.IdSala));
                    com.Parameters.Add(new SqlParameter("@nomb", salaACrear.Nombre));
                    com.ExecuteNonQuery();

                }
            }
            salaCreado = Obtener(salaACrear.IdSala);
            return salaCreado;
        }
        public Sala Obtener(int codigo)
        {
            Sala salaEncontrado = null;
            string sql = "SELECT * FROM  T_sala WHERE idsala=@cod";
            using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@cod", codigo));
                    using (SqlDataReader resultado = com.ExecuteReader())
                        if (resultado.Read())
                        {
                            salaEncontrado = new Sala()
                            {
                                IdSala = (int)resultado["idsala"],
                                Nombre = (string)resultado["nombre"]
                            };

                        }
                }
            }
            return salaEncontrado;
        }
        public Sala Modificar(Sala salaAModificar)
        {
            Sala salaModificado = null;
            string sql = "UPDATE T_sala SET NOMBRE=@nomb WHERE idsala=@cod";
            using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@cod", salaAModificar.IdSala));
                    com.Parameters.Add(new SqlParameter("@nomb", salaAModificar.Nombre));

                    com.ExecuteNonQuery();

                }
            }
            salaModificado = Obtener(salaAModificar.IdSala);
            return salaModificado;
        }
        public void Eliminar(Sala salaAEliminar)
        {
            Sala salaEliminado = null;
            string sql = "DELETE FROM T_SALA WHERE idsala=@cod";
            using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@cod", salaAEliminar.IdSala));
                    com.Parameters.Add(new SqlParameter("@nomb", salaAEliminar.Nombre));
                    com.ExecuteNonQuery();

                }
            }
            salaEliminado = Obtener(salaAEliminar.IdSala);
        }
        public List<Sala> ListarTodos()
        {
            Sala al = null;
            List<Sala> traeSalas = new List<Sala>();
            string sql = "SELECT * FROM  T_SALA";
            using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {

                    using (SqlDataReader resultado = com.ExecuteReader())
                        if (resultado.HasRows)
                        {
                            while (resultado.Read())
                            {
                                al = new Sala()
                                {
                                    IdSala = (int)resultado["idsala"],
                                    Nombre = (string)resultado["nombre"],

                                };
                                traeSalas.Add(al);
                            }
                        }

                }
            }
            return traeSalas;
        }
    }
}